#include <bits/stdc++.h>
using namespace std;
int globalData = 1;
char globalBSS2[1024 * 1024 * 500];
char globalBSS1[1024 * 1024 * 500];
vector<pair<string, void*>> addrs;
void func() {
  static int staticData[] = {1, 2, 3, 4};
  static int staticBSS;
  int variableInFunc;
  addrs.emplace_back(".bss static", (void*)&staticBSS);
  addrs.emplace_back(".data static", (void*)&staticData);
  addrs.emplace_back("stack in func", (void*)&variableInFunc);
}
int main() {
  char *rodata = "Hello World";
  int* heap1 = (int*)malloc(1024 * 1024 * 100);
  int* heap2 = new int[256 * 1024 * 200];
  int* heap3 = new int[256 * 1024 * 200];
  int variable;
  func();
  addrs.emplace_back(".text func", (void*)func);
  addrs.emplace_back(".text main", (void*)main);
  addrs.emplace_back(".rodata", (void*)rodata);
  addrs.emplace_back(".data", (void*)&globalData);
  addrs.emplace_back(".bss 1", (void*)&globalBSS1);
  addrs.emplace_back(".bss 2", (void*)&globalBSS2);
  addrs.emplace_back("heap 1", (void*)heap1);
  addrs.emplace_back("heap 2", (void*)heap2);
  addrs.emplace_back("heap 3", (void*)heap3);
  addrs.emplace_back("stack in main1", (void*)&variable);
  addrs.emplace_back("stack in main2", (void*)&rodata);
  addrs.emplace_back("stack in main3", (void*)&heap1);
  addrs.emplace_back("stack in main4", (void*)&heap2);
  addrs.emplace_back("stack in main5", (void*)&heap3);
  sort(addrs.begin(), addrs.end(), [](auto &a, auto &b) {
    return a.second < b.second;
  });
  for (auto &[local, addr] : addrs) {
    cout << format("{0:15}: {1:#x} {1}\n", local, (uint64_t)addr);
  }
}